perm filename SOGM.FRM[LSP,JRA] blob
sn#126184 filedate 1974-10-15 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ~This is first attempt to write evaluator for extension of lisp
C00006 00003 ~SELECTORS
C00007 00004 ~THE PREDICATES
C00009 00005 ~THE CONSTANTS
C00010 00006 ~THE CONSTRUCTORS
C00011 00007 ~PRIMITIVE APPLICATIONS--DELTA RULES
C00014 ENDMK
C⊗;
~This is first attempt to write evaluator for extension of lisp
~with form valed variables. this is really (as usual) an evlauaator
~operating on REPRESENTATION(!!!) of lang, but mapping should be smooth!!
~UNDEFINED SHOULD BE CHECKED...CAN OCCUR FROM (CAR @A) ETC...
(DE SOGM (EXP ENV)
(COND
((IS_CONST EXP) EXP)
((IS_VAR EXP) (VALUE EXP ENV))
((IS_COND EXP) (EVCOND (EXPR EXP) ENV))
((IS_FUN_ARGS EXP) (APPLY_S (FUN EXP)
(LIST_OF_EVALED_ARGS (ARGS EXP) ENV)
ENV))
(T UNDEF)
))
(DE APPLY_S(FN ARGS ENV)
(COND
((IS_UNDEF FN)UNDEF)
((MEMBER UNDEF ARGS) UNDEF)
((IS_CAR FN) (APPLY_CAR ARGS))
((IS_CDR FN) (APPLY_CDR ARGS))
((IS_CONS FN) (APPLY_CONS ARGS))
((IS_ATOM FN) (APPLY_ATOM ARGS))
((IS_EQ FN) (APPLY_EQ ARGS))
((IS_NAME FN) ((LAMBDA(Y)(COND((EQ Y FN) (MAKE_FORM FN ARGS))
(T (APPLY_S Y ARGS ENV))))(SOGM FN ENV)))
((IS_LAMBDAiGA≥αBN>≡j↓"
>%Iα~9J↓":⊗9B⊗:YαBZεJ~α~9%∧
J≡M∧*:Y%JH4(%αA"&LDbε
⊗b↓"∞ε∩α~9%J↓"εB∧bdbMαB2ε
,`b
>%Iα~9J4($HH$&ε∀:M4PH$$$JB:⊗\D*:Y↓Db&NQαB2ε
,`b:εl)α~9JH4($HH$$%αB2&N"↓"2ε∀*0b
|"eα~rI$4(HH$$$Jα⊗:YJI$4(J↓"Qα,r∩⊗→Hh(%↓αI$4(hQ"∩∃∧"⊗:>$)↓"⊗E↓$4(JB∞>: h(%↓BB&Lbu*6
⊗∩α⊗bAJα⊗bAHh(%↓BB&Lb%∩VR!∧*bA%αα⊗bAHh(%↓BB&Lb4
2N∃∧*bA%αα⊗bAHh(%↓BB&Lb≤*bBI∧*bA%αα⊗bAHh(%↓αI$4(hQ"∩∃¬2ε2V*BZεI∧*:Y$hP%"∞|r⊂4(J↓!":,b1α⊗u1%αZ
⊃$4(J↓!"⊗
αZεIαB:ε6*B~&J≥!α⊗:2I%%↓E2ε1"4JJNQ∧*:Y%JH4(%αBQ↓"4
2V∃¬2εI↓E∩⊗NQ∧*:Y%JH4(%α↓%$4Ph)"∩*α⊗Z∞|r⊃↓"-BAα⊗u1$4)BB2ε6∀"¬"∃Hh(%"≤z:⊂4PI↓!"M_bV:$*→α∃JαV:∩,1$4(J↓!"&→BRJV$Aα∃%αBN>≡j↓"∃α-BA%α,rY%$hP%↓!DJLb~bN∃α*I↓"N|:5↓"⎇9α⊗bαIα⊗:2I$4(J↓"Q↓Djε.∀D~>:⊃αα∀4(HH%"N|:5↓"*α⊗bAJα⊗:YHh($%α↓%"≤z≡5↓Dz]α⊗E↓&⊗:2I%$4PI↓↓$hQ↓%"≤z≡5"αα⊗bAJα⊗:YJH4(%α↓$4(hQ"∩∃∧b&NPDz_b⊗4
2⊗⊂D
J≡MD
J≡M∧*:Y$hP%"∞|r⊂4(J↓!":,b1αε∀:M%αtJ1$4PI↓"QαB∞>:~↓"N><i↓"~M∩NQα
∩≡M%∧*:Y%h(%↓α↓↓"2M~Pb>1B⊗Zεd*⊂bε∀:M↓"∀*NQα
∩≡M%∧*:Y%JH4(%α↓%$4Ph)"∩*α:⊗\D*:Y↓E2εJM¬2ε2M∧*:Y$hP%"∞|r⊂4(J↓!":,b1αZ
∩M%α,rY$4PI↓"QαB∞>:~↓"6ε\(b⊗:%∩e↓"4JJNQ¬2εJMJB~&J≥!αZεe→%$4PI↓↓↓α↓↓↓↓α↓":⊗9B⊗:YαBJ⊗N"αZεJ~I"J⊗≥!αZεe→%α⊗u1%%$hP%↓↓JH4(0jN,b⊗∞R⎇∩L4(hQ"∩∃∧2&JN"↓"a%D~εIαBI$4(hQ"∩∃¬∩⊗NQαBa%"≤"IαaJH4(4RB∩∃α-BBI"BI"∞∩∩αa%$hP4)"$)α~VrBa%"≤
IαaJH4(4RB∩∃α
∩≡M"BI"∞∩∩αa%$hP4)"$)α
>%I"a%D~ε∩∩∩αa%$hP4)"$)αZε∃→"a%D~ε∩I¬A%$4Ph)"∩*α:ε6*Ba%"≤
IαaJH4(4RB∩∃α4
1"aJB∞∩I¬A%$4Ph)"∩*αA"aJB∞εI¬A%$4Ph)"∩*α∃"aJB∞ε∩∩αa%$hP4)"$)α>]EA%"∞"∩IαBI$4(hQ"∩∃∧bε
⊗aB
>∩JBa%"≤
∩∩I¬A%$4Ph)"∩*α2ε
,`b:εl)"a%D~ε∩I¬A%$4P0jRD)αBJ,"&∞ε$*L4)D"∃α&→B∞>:≥!"⊗bαH4(%D~>:⊂hP%↓!DJLb:,j
⊗I∧*bA%¬!$4(J↓!"&→BRJV$Aα⊗bαI↓αQHh(%↓BB&Lb4
2N∃∧*bA%ααQ$4PI↓!"M_bN⊗EαIα⊗E↓%↓α"H4(%αBQ↓↓α↓↓↓↓α↓↓↓↓α↓α:&bH4(%α↓%$4Ph)"∩*α&Lb4
I"aJBε:⊃D
R>5¬A%":⎇!↓"&→B∞>:≥!αa%JB:>QDJLbVt"⊗→αBI%%$hP4)"$)α&LDrε6∃EA%"εt!"εR|iαa%Dr>Q↓DJLb∞|rNQαBI%":⎇!"&LE*:∩⊗2αa%%JH4(4RB∩∃αM_b∞>t!"a%D*E"∞
⊃αa%αBFV>$)α∞>t!%%$hP4)"$)α&LD2V8b
∩≡M↓EA%↓"⎇⊃"&LDrε6∃D~εIαBI%"&→B2ε6∀"¬"∞
⊃αa%JB&Lbd
⊗1D~εεI¬A%%%Hh(4)D"∃α&→B2ε
,a"a%D*Eαa∧α2ε
,a%$4Ph)"∩*α&Lb≤
I↓"BI"⊗E¬A"FV⎇"∃α∞
⊃%%$hP4)"$)α&LD~∩I↓EA%"⊗
αa"F,zR∃α≤"I%%Hh(4(hQ"∩∃∧JLb∞|rM↓"BI"⊗E¬A"FV⎇"∃α∞|rM%%Hh(4)D"∃α&→B⊗E↓EA%"⊗
αa"F,zR∃α- %%$hP4)"$)α&LD
R>5αBa%"- αa"
*>R∃∧
R>5JI$4(hQ"∩∃∧JLb2j
∩¬EA%"⊗
↓"∞ε∩αa%"
*>R∃∧bε6
$ %%$hP4)"$)α&LDrV6
-⊃"a%DrV6
-∩AαaJH4(4RB∩∃αM_bRJ-"!"aJB⊗FVa↓αa¬∩⊗@b%∩V∃%Hh(4)D"∃α&→B~ε2≤)"a%D*FVεbαaαJ-b~εe~∃%$hP4)"$)α&LE*:∩⊗2Ba%"- αaα,r∩⊗→JH4(4RB∩∃αM_bN⊗EαI"aJB⊗E"≤
IαaJ↓"FV⎇"∃αF,zR∃%JH4(4Ph(0jRD)α∞>u~Rε:%_4(4RBN⊗R
αV:∩,1α↓**Q$4(hQ"N⊗% α~εe~∃α↓T2ε2N*Q$4(hQ"N⊗% αRJ,)↓α↓U"JV∃RH4(4RBN⊗R
αJ⊗@E"JV∃αB2&N"ααFV⎇"∃αR∃*∃%$hP4)"≤*REα∀*@b~bN∃↓Db&NQ∧αFV>$)α~εe~∃%$hP0jRD)α∞>u~RJV≥">JLhQ"∩∃∧jε.∀D2>J5EAαe%D~>:M¬Aαe%Hh(4)D"∃α6Z∀bVt
Je"2αa%"dJNQα2αa%$hP4)"$)α6ε\(b∞>u~Q"aJB6ε.)BV:ε∃IααF,zR∃αBI$4(hQ"∩∃∧jε.∀D∩&:ε∃I"→αBαe%"dJNQα2αaαeJH4(4RB∩∃αl
.∀b,rRJeEAαe%D~>:M¬Aαe%Hh(4)D"∃α6Z∀b∞|r⊃"a¬Iαi$hP%"∞|r⊂4(J↓!"&→BV:∩,1αe%¬*:∩⊗2H4(%αA"&LE*:∩⊗2αi%α,r∩⊗→Hh(%↓E!↓↓↓α↓↓↓↓α↓↓↓"dJNQα∧~>:⊃¬AαeαRI$4(J↓%$4Ph(0jB∀J6&RM2∃αε¬α2&∞
"&>:~i6∩⊗e"¬αJ,b⊗L4Ph(4)D"∃αε¬α2db≤
I"aJBεBBeHb∞ε⊃B∞∩I∧α∞εI¬A%$4Ph)"∩*αεBBeHb∞∩∩Ba%"
αB2dD~εHb≤"Iαα≤"IαaJH4(4RB∩∃α
αB2dD~εHb≤"I"→¬I$4)αA"2εl∩∩¬"
∩≥E$hP%"∞|r⊂4(J↓!"&→BZεI∧
J≥EJ↓↓↓↓Djε.∀E*:εJJ↓α→α
∩≥E%Hh(%↓BB&Lb,r∩⊗→∧
J≥EJ↓αV:$*→$4PI↓!"M_b∞>u~Qαε∀9E%↓αA"2εl∩∩¬"
∩≥%"≤z:⊂4PH$$$JA"εR|iαεJ:IαV:$*→$4PH$$$JBQ↓"l
.∀b≤z:NQD1αεJ:I%%%Hh($$HI"∞ε%⊃αεJ; %%$hP%↓""↓↓↓↓α↓↓↓↓α↓↓↓↓α↓↓"6Z∀bVt
Jeα2αεJ≥
I$4(JI$4)α↓↓↓↓α↓"∞ε∩αe%$hQ$4(hP4)"$)αεB∧bdb∞|rM"aHh)!"d
6
∩
BεJ≥
αεJ≥∩H4(%D~>:⊂hP%↓!DJLbVt"⊗→α
∩≥E%ααV:∩,1$4(J↓!"&→BV:∩,1αεJ;⊃%↓α,r∩⊗→Hh(%↓BB&Lb4
Iαε∀9E%↓α↓↓"6Z∀b
LrεJe∧α∞>:~αεJ≥
αεJ≥∩I$4(J↓!"&→BZεI∧
J≥IJ↓↓↓↓Djε.∀D∩&:ε∃Iαα∞|rMαε∀9Eαε∀9I%$hP%↓!DJLb∞|rNQα
∩≥E%α↓!"2j
∩¬D Eα¬∩I"6ε\(b∞>u~Q↓"≤z:Mα α¬IJI$4(HH$%"≤
∩Iα
∩≥E%D~ε∩I∧
J≥IJI$4(J↓"Q↓α↓↓↓↓α↓↓↓↓α↓↓↓↓Djε.∀D∩&:ε∃Iαα∞|rMαε∀9Eαε∀9I%$hP%%%D~εIαBI"∞ε%⊃αa%Hh)$4Ph)"∩*αεBBeHb⊗EEA$4)BB2ε6∀"¬"ε∀;h"-1 ARG2)
(COND
((IS_UNDEF ARG1) UNDEF)
((IS_UNDEF ARG2) UNDEF)
((AND(IS_CONST ARG1)
((LAMBDA(A1)(NOT(ATOM A1)))
(CADR ARG1)))
UNDEF)
((AND(IS_CONST ARG2)
((LAMBDA(A1)(NOT(ATOM A1)))
(CADR ARG2)))
UNDEF)
((IS_VAR ARG1) (MAKE_BINARY @EQ ARG1 ARG2))
((IS_VAR ARG2) (MAKE_BINARY @EQ ARG1 ARG2))
((AND(IS_CONST ARG1)
(IS_CONST ARG1))
(MAKE_CONST
((LAMBDA(A1 A2)(COND
((EQ A1 A2) TRUE)
(T FALSE)))
(CADR ARG1)(CADR ARG2))))
(T (MAKE_BINARY @EQ ARG1 ARG2))
))(CAR X)(CADR X))
)
(DE APPLY_ATOM(X)
((LAMBDA(ARG1)
(COND
((IS_UNDEF ARG1) UNDEF)
((IS_VAR ARG1) (MAKE_UNARY @ATOM ARG1))
((IS_CONST ARG1) (MAKE_CONST
((LAMBDA(A1)(COND
((ATOM A1)TRUE)
(T FALSE)))
(CADR ARG1))))
(T (MAKE_UNARY @ATOM ARG1))
))(CAR X))
)